<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>程序员英语学习月计划</title>
    <style>
        body {
            font-family: 'Segoe UI', Arial, sans-serif;
            line-height: 1.6;
            margin: 0;
            padding: 20px;
            background-color: #f0f3f9;
        }
        h1, h2 {
            color: #2c3e50;
        }
        .section {
            background: white;
            border-radius: 10px;
            padding: 20px;
            margin-bottom: 25px;
            box-shadow: 0 2px 5px rgba(0,0,0,0.1);
        }
        table {
            width: 100%;
            border-collapse: collapse;
            margin: 15px 0;
        }
        th, td {
            padding: 12px;
            border: 1px solid #ddd;
            text-align: left;
        }
        th {
            background-color: #3498db;
            color: white;
        }
        tr:nth-child(even) {
            background-color: #f8f9fa;
        }
        a {
            color: #2980b9;
            text-decoration: none;
        }
        code {
            background: #f4f4f4;
            padding: 2px 5px;
            border-radius: 3px;
            font-family: 'Courier New', monospace;
        }
    .pronounce-btn {
        display: inline-block;
        width: 24px;
        height: 24px;
        background: url('data:image/svg+xml;utf8,<svg viewBox="0 0 24 24" fill="%233498db" xmlns="http://www.w3.org/2000/svg"><path d="M3 9v6h4l5 5V4L7 9H3zm13.5 3c0-1.77-1.02-3.29-2.5-4.03v8.05c1.48-.73 2.5-2.25 2.5-4.02zM14 3.23v2.06c2.89.86 5 3.54 5 6.71s-2.11 5.85-5 6.71v2.06c4.01-.91 7-4.49 7-8.77s-2.99-7.86-7-8.77z"/></svg>') no-repeat center;
        cursor: pointer;
        vertical-align: middle;
        margin-left: 8px;
        opacity: 0.7;
        transition: opacity 0.3s;
    }
    .pronounce-btn:hover {
        opacity: 1;
    }
    </style>
</head>
<body>
    <h1>程序员英语强化月计划</h1>

    <!-- 导航锚点 -->
    <div class="section">
        <h2>快速导航</h2>
        <ul>
            <li><a href="#part1">第一部分：音标系统学习</a></li>
            <li><a href="#part2">第二部分：Python核心词汇</a></li>
            <li><a href="practise.html">每日练习</a></li>
            <li><a href="Tools.html">python3在线</a></li>
        </ul>
    </div>

    <!-- 第一部分：音标学习 -->
    <div class="section" id="part1">
        <h2>📚 第一部分：音标系统学习（2周）</h2>
        
        <h3>单元音（12个）</h3>
        <table>
            <tr><th>音标</th><th>发音要点（器官动作）</th><th>示例词</th><th>发音</th></tr>
            <tr><td>/iː/</td><td>舌前部抬高近硬腭，舌尖抵下齿，双唇向两侧展开，下颌微开（约1mm）</td><td>read</td><td>/riːd/</td></tr>
            <tr><td>/ɪ/</td><td>舌前部稍低于/iː/，舌尖轻触下齿，唇形稍放松，下颌开度2-3mm</td><td>if</td><td>/ɪf/</td></tr>
            <tr><td>/e/</td><td>舌前部抬至中高位置，舌尖抵下齿，双唇稍扁，下颌开度4-5mm</td><td>let</td><td>/let/</td></tr>
            <tr><td>/æ/</td><td>舌前部低平，舌尖紧贴下齿，口张大（上下齿距约1.5cm），唇形自然</td><td>add</td><td>/æd/</td></tr>
            <tr><td>/ɑː/</td><td>舌身后缩，舌尖远离下齿，舌背低平，口全开（上下齿距约2cm）</td><td>class</td><td>/klɑːs/</td></tr>
            <tr><td>/ɒ/</td><td>舌身后缩，舌背微隆，双唇稍圆，下颌半开（上下齿距约1cm）</td><td>log</td><td>/lɒɡ/</td></tr>
            <tr><td>/ɔː/</td><td>舌身后缩，舌背明显隆起，双唇用力收圆，下颌半闭（上下齿距5mm）</td><td>call</td><td>/kɔːl/</td></tr>
            <tr><td>/ʊ/</td><td>舌身后缩，舌背隆起，双唇稍圆（不突出），下颌微开（3-4mm）</td><td>put</td><td>/pʊt/</td></tr>
            <tr><td>/uː/</td><td>舌身后缩至极限，舌背高隆，双唇紧圆前突，下颌几乎闭合</td><td>loop</td><td>/luːp/</td></tr>
            <tr><td>/ʌ/</td><td>舌中部微隆，舌尖轻触下齿，口半开（上下齿距约1cm），唇形自然</td><td>run</td><td>/rʌn/</td></tr>
            <tr><td>/ɜː/</td><td>舌身平放，中部微隆，双唇自然扁平，下颌半开（上下齿距8mm）</td><td>learn</td><td>/lɜːn/</td></tr>
            <tr><td>/ə/</td><td>舌身完全放松，中部微隆，双唇自然，下颌微开（3-4mm）</td><td>about</td><td>/əˈbaʊt/</td></tr>
        </table>

        <h3>双元音（8个）</h3>
        <table>
            <tr><th>音标</th><th>发音要点（动态动作）</th><th>示例词</th><th>发音</th></tr>
            <tr><td>/eɪ/</td><td>从/e/开始：舌前中高位 → 滑向/ɪ/：舌前稍降，下颌渐闭合</td><td>name</td><td>/neɪm/</td></tr>
            <tr><td>/aɪ/</td><td>从/a/开始：舌身低平 → 滑向/ɪ/：舌前部渐抬起，口渐闭</td><td>type</td><td>/taɪp/</td></tr>
            <tr><td>/ɔɪ/</td><td>从/ɔː/开始：舌身后缩 → 滑向/ɪ/：舌前抬起，唇形渐展</td><td>join</td><td>/dʒɔɪn/</td></tr>
            <tr><td>/aʊ/</td><td>从/a/开始：口全开 → 滑向/ʊ/：舌身后缩，双唇渐圆</td><td>out</td><td>/aʊt/</td></tr>
            <tr><td>/əʊ/</td><td>从/ə/开始：舌中微隆 → 滑向/ʊ/：舌身后缩，双唇收圆</td><td>code</td><td>/kəʊd/</td></tr>
            <tr><td>/ɪə/</td><td>从/ɪ/开始：舌前稍高 → 滑向/ə/：舌身放松，下颌略降</td><td>here</td><td>/hɪə/</td></tr>
            <tr><td>/eə/</td><td>从/e/开始：舌前中高 → 滑向/ə/：舌中部微隆，口略张大</td><td>error</td><td>/ˈeərə/</td></tr>
            <tr><td>/ʊə/</td><td>从/ʊ/开始：舌身后缩 → 滑向/ə/：舌前部渐降，唇形渐展</td><td>secure</td><td>/sɪˈkjʊə/</td></tr>
        </table>
    </div>

    <!-- 辅音部分 -->
    <div class="category">
        <h2>二、辅音音标（24个）</h2>

        <h3>爆破音（6个）</h3>
        <table>
            <tr><th>音标</th><th>发音要点（三维定位）</th><th>示例词</th><th>发音</th></tr>
            <tr><td>/p/</td><td>双唇爆破清音：双唇闭合 → 气流蓄压 → 突然释放，声带不振动</td><td>print</td><td>/prɪnt/</td></tr>
            <tr><td>/b/</td><td>双唇爆破浊音：动作同/p/，但声带振动</td><td>bool</td><td>/buːl/</td></tr>
            <tr><td>/t/</td><td>齿龈爆破清音：舌尖抵上齿龈 → 气流突破阻碍，声带不振动</td><td>true</td><td>/truː/</td></tr>
            <tr><td>/d/</td><td>齿龈爆破浊音：动作同/t/，但声带振动</td><td>data</td><td>/ˈdeɪtə/</td></tr>
            <tr><td>/k/</td><td>软腭爆破清音：舌后部隆起抵软腭 → 突然放开，声带不振动</td><td>class</td><td>/klɑːs/</td></tr>
            <tr><td>/ɡ/</td><td>软腭爆破浊音：动作同/k/，但声带振动</td><td>get</td><td>/ɡet/</td></tr>
        </table>

        <h3>摩擦音（9个）</h3>
        <table>
            <tr><th>音标</th><th>发音要点（阻碍方式）</th><th>示例词</th><th>发音</th></tr>
            <tr><td>/f/</td><td>唇齿摩擦清音：下唇轻触上齿，气流从缝隙挤出，声带不振动</td><td>false</td><td>/fɔːls/</td></tr>
            <tr><td>/v/</td><td>唇齿摩擦浊音：动作同/f/，但声带振动</td><td>void</td><td>/vɔɪd/</td></tr>
            <tr><td>/θ/</td><td>齿间摩擦清音：舌尖伸于上下齿间，气流摩擦，声带不振动</td><td>thread</td><td>/θred/</td></tr>
            <tr><td>/ð/</td><td>齿间摩擦浊音：动作同/θ/，但声带振动</td><td>this</td><td>/ðɪs/</td></tr>
            <tr><td>/s/</td><td>齿龈摩擦清音：舌尖近上齿龈，舌两侧贴臼齿，气流从中央窄缝挤出</td><td>string</td><td>/strɪŋ/</td></tr>
            <tr><td>/z/</td><td>齿龈摩擦浊音：动作同/s/，但声带振动</td><td>zero</td><td>/ˈzɪərəʊ/</td></tr>
            <tr><td>/ʃ/</td><td>硬腭摩擦清音：舌叶上抬近硬腭前部，双唇稍圆，声带不振动</td><td>push</td><td>/pʊʃ/</td></tr>
            <tr><td>/ʒ/</td><td>硬腭摩擦浊音：动作同/ʃ/，但声带振动</td><td>closure</td><td>/ˈkləʊʒə/</td></tr>
            <tr><td>/h/</td><td>声门摩擦清音：声门略收，气流摩擦通过，口腔形状随后续元音变化</td><td>hash</td><td>/hæʃ/</td></tr>
        </table>

        <h3>破擦音（2个）</h3>
        <table>
            <tr><th>音标</th><th>发音要点（复合动作）</th><th>示例词</th><th>发音</th></tr>
            <tr><td>/tʃ/</td><td>硬腭破擦清音：先/t/的舌位 → 立即转为/ʃ/的摩擦，声带不振动</td><td>catch</td><td>/kætʃ/</td></tr>
            <tr><td>/dʒ/</td><td>硬腭破擦浊音：动作同/tʃ/，但声带振动</td><td>judge</td><td>/dʒʌdʒ/</td></tr>
        </table>

        <h3>鼻音（3个）</h3>
        <table>
            <tr><th>音标</th><th>发音要点（鼻腔通路）</th><th>示例词</th><th>发音</th></tr>
            <tr><td>/m/</td><td>双唇鼻音：双唇闭合，软腭下垂，气流从鼻腔流出，声带振动</td><td>import</td><td>/ˈɪmpɔːt/</td></tr>
            <tr><td>/n/</td><td>齿龈鼻音：舌尖抵上齿龈，气流从鼻腔流出，声带振动</td><td>none</td><td>/nʌn/</td></tr>
            <tr><td>/ŋ/</td><td>软腭鼻音：舌后抵软腭，口腔完全封闭，气流从鼻腔流出，声带振动</td><td>string</td><td>/strɪŋ/</td></tr>
        </table>

        <h3>其他辅音（4个）</h3>
        <table>
            <tr><th>音标</th><th>发音要点（特殊机制）</th><th>示例词</th><th>发音</th></tr>
            <tr><td>/l/</td><td>齿龈边音：舌尖抵上齿龈，舌两侧下陷，气流从舌侧通过，声带振动</td><td>loop</td><td>/luːp/</td></tr>
            <tr><td>/r/</td><td>齿龈近音：舌尖卷向硬腭（但不接触），舌身两侧收拢，声带振动</td><td>return</td><td>/rɪˈtɜːn/</td></tr>
            <tr><td>/j/</td><td>硬腭近音：舌前部向硬腭抬起，形成狭窄通道，声带振动</td><td>yield</td><td>/jiːld/</td></tr>
            <tr><td>/w/</td><td>唇软腭近音：双唇收圆前突，舌后部向软腭抬起，声带振动</td><td>while</td><td>/waɪl/</td></tr>
        </table>
    </div>

    <!-- 在之前的HTML文件<body>标签内追加以下内容 -->
<div class="category" id="part2">
    <h2>三、Python核心词汇（100词精选）</h2>

    <!-- 1. 数据类型与结构 -->
    <h3>1. 数据类型与结构（20词）</h3>
    <table>
        <tr><th>英文</th><th>音标</th><th>中文</th><th>代码示例</th></tr>
        <tr><td>integer</td><td>/ˈɪntɪdʒər/</td><td>整数</td><td><code>num = 42</code></td></tr>
        <tr><td>float</td><td>/fləʊt/</td><td>浮点数</td><td><code>pi = 3.14</code></td></tr>
        <tr><td>boolean</td><td>/ˈbuːliən/</td><td>布尔值</td><td><code>is_valid = True</code></td></tr>
        <tr><td>string</td><td>/strɪŋ/</td><td>字符串</td><td><code>s = "Hello"</code></td></tr>
        <tr><td>list</td><td>/lɪst/</td><td>列表</td><td><code>nums = [1, 2, 3]</code></td></tr>
        <tr><td>tuple</td><td>/ˈtuːpəl/</td><td>元组</td><td><code>point = (3, 5)</code></td></tr>
        <tr><td>dict</td><td>/dɪkt/</td><td>字典</td><td><code>user = {'name': 'Alice'}</code></td></tr>
        <tr><td>set</td><td>/set/</td><td>集合</td><td><code>unique = {1, 2, 3}</code></td></tr>
        <tr><td>frozenset</td><td>/ˈfrəʊzənset/</td><td>不可变集合</td><td><code>fs = frozenset([1,2])</code></td></tr>
        <tr><td>bytes</td><td>/baɪts/</td><td>字节</td><td><code>b = b'data'</code></td></tr>
        <tr><td>bytearray</td><td>/ˈbaɪtəreɪ/</td><td>可变字节</td><td><code>arr = bytearray(5)</code></td></tr>
        <tr><td>none</td><td>/nʌn/</td><td>空值</td><td><code>result = None</code></td></tr>
        <tr><td>range</td><td>/reɪndʒ/</td><td>范围</td><td><code>nums = range(5)</code></td></tr>
        <tr><td>slice</td><td>/slaɪs/</td><td>切片</td><td><code>s = "hello"[1:3]</code></td></tr>
        <tr><td>iterator</td><td>/ˈɪtəreɪtər/</td><td>迭代器</td><td><code>it = iter([1,2])</code></td></tr>
        <tr><td>generator</td><td>/ˈdʒenəreɪtər/</td><td>生成器</td><td><code>def gen(): yield 1</code></td></tr>
        <tr><td>enumerate</td><td>/ɪˈnjuːməreɪt/</td><td>枚举</td><td><code>for i,v in enumerate(lst)</code></td></tr>
        <tr><td>comprehension</td><td>/ˌkɒmprɪˈhenʃən/</td><td>推导式</td><td><code>[x**2 for x in range(5)]</code></td></tr>
        <tr><td>lambda</td><td>/ˈlæmdə/</td><td>匿名函数</td><td><code>f = lambda x: x*2</code></td></tr>
        <tr><td>decorator</td><td>/ˈdekəreɪtər/</td><td>装饰器</td><td><code>@decorator</code></td></tr>
    </table>

    <!-- 2. 控制流与函数 -->
    <h3>2. 控制流与函数（20词）</h3>
    <table>
        <tr><th>英文</th><th>音标</th><th>中文</th><th>代码示例</th></tr>
        <tr><td>conditional</td><td>/kənˈdɪʃənəl/</td><td>条件语句</td><td><code>if x > 5:</code></td></tr>
        <tr><td>loop</td><td>/luːp/</td><td>循环</td><td><code>while True:</code></td></tr>
        <tr><td>break</td><td>/breɪk/</td><td>跳出循环</td><td><code>break</code></td></tr>
        <tr><td>continue</td><td>/kənˈtɪnjuː/</td><td>跳过本次循环</td><td><code>continue</code></td></tr>
        <tr><td>exception</td><td>/ɪkˈsepʃən/</td><td>异常</td><td><code>raise ValueError</code></td></tr>
        <tr><td>try</td><td>/traɪ/</td><td>异常捕获</td><td><code>try: ... except:</code></td></tr>
        <tr><td>finally</td><td>/ˈfaɪnəli/</td><td>最终执行块</td><td><code>finally: ...</code></td></tr>
        <tr><td>raise</td><td>/reɪz/</td><td>抛出异常</td><td><code>raise TypeError</code></td></tr>
        <tr><td>assert</td><td>/əˈsɜːt/</td><td>断言</td><td><code>assert x > 0</code></td></tr>
        <tr><td>recursion</td><td>/rɪˈkɜːrʒən/</td><td>递归</td><td><code>def fib(n): return fib(n-1)+...</code></td></tr>
        <tr><td>parameter</td><td>/pəˈræmɪtər/</td><td>形参</td><td><code>def func(param):</code></td></tr>
        <tr><td>argument</td><td>/ˈɑːɡjumənt/</td><td>实参</td><td><code>func(arg)</code></td></tr>
        <tr><td>default</td><td>/dɪˈfɔːlt/</td><td>默认值</td><td><code>def f(x=0):</code></td></tr>
        <tr><td>keyword</td><td>/ˈkiːwɜːd/</td><td>关键字参数</td><td><code>f(name='Alice')</code></td></tr>
        <tr><td>variable</td><td>/ˈveəriəbəl/</td><td>变量</td><td><code>count = 0</code></td></tr>
        <tr><td>scope</td><td>/skəʊp/</td><td>作用域</td><td><code>global count</code></td></tr>
        <tr><td>closure</td><td>/ˈkləʊʒə/</td><td>闭包</td><td><code>def outer(): x=1; return lambda: x</code></td></tr>
        <tr><td>import</td><td>/ɪmˈpɔːt/</td><td>导入</td><td><code>import math</code></td></tr>
        <tr><td>module</td><td>/ˈmɒdjuːl/</td><td>模块</td><td><code>math.py</code></td></tr>
        <tr><td>package</td><td>/ˈpækɪdʒ/</td><td>包</td><td><code>from flask import ...</code></td></tr>
    </table>

    <!-- 3. 错误与调试 -->
    <h3>3. 错误与调试（15词）</h3>
    <table>
        <tr><th>英文</th><th>音标</th><th>中文</th><th>代码示例</th></tr>
        <tr><td>traceback</td><td>/ˈtreɪsbæk/</td><td>回溯信息</td><td><code>traceback.print_exc()</code></td></tr>
        <tr><td>debug</td><td>/diːˈbʌɡ/</td><td>调试</td><td><code>import pdb; pdb.set_trace()</code></td></tr>
        <tr><td>breakpoint</td><td>/ˈbreɪkpɔɪnt/</td><td>断点</td><td><code>breakpoint()</code></td></tr>
        <tr><td>syntax</td><td>/ˈsɪntæks/</td><td>语法</td><td><code>SyntaxError</code></td></tr>
        <tr><td>indent</td><td>/ɪnˈdent/</td><td>缩进</td><td><code>IndentationError</code></td></tr>
        <tr><td>attribute</td><td>/əˈtrɪbjuːt/</td><td>属性</td><td><code>AttributeError</code></td></tr>
        <tr><td>index</td><td>/ˈɪndeks/</td><td>索引</td><td><code>IndexError</code></td></tr>
        <tr><td>key</td><td>/kiː/</td><td>键</td><td><code>KeyError</code></td></tr>
        <tr><td>type</td><td>/taɪp/</td><td>类型</td><td><code>TypeError</code></td></tr>
        <tr><td>value</td><td>/ˈvæljuː/</td><td>值</td><td><code>ValueError</code></td></tr>
        <tr><td>stack</td><td>/stæk/</td><td>堆栈</td><td><code>traceback.format_stack()</code></td></tr>
        <tr><td>log</td><td>/lɒɡ/</td><td>日志</td><td><code>logging.info('msg')</code></td></tr>
        <tr><td>warning</td><td>/ˈwɔːrnɪŋ/</td><td>警告</td><td><code>warnings.warn('msg')</code></td></tr>
        <tr><td>handle</td><td>/ˈhændl/</td><td>处理</td><td><code>except Exception as e:</code></td></tr>
        <tr><td>raise</td><td>/reɪz/</td><td>抛出</td><td><code>raise CustomError()</code></td></tr>
    </table>

    <!-- 4. 常用模块与库 -->
    <h3>4. 常用模块与库（30词）</h3>
    <table>
        <tr><th>英文</th><th>音标</th><th>中文</th><th>代码示例</th></tr>
        <tr><td>os</td><td>/ˌoʊˈes/</td><td>操作系统接口</td><td><code>os.path.exists()</code></td></tr>
        <tr><td>sys</td><td>/sɪs/</td><td>系统参数</td><td><code>sys.argv</code></td></tr>
        <tr><td>math</td><td>/mæθ/</td><td>数学运算</td><td><code>math.sqrt(2)</code></td></tr>
        <tr><td>datetime</td><td>/ˈdeɪtɪtaɪm/</td><td>日期时间</td><td><code>datetime.now()</code></td></tr>
        <tr><td>json</td><td>/ˈdʒeɪsən/</td><td>JSON处理</td><td><code>json.dumps(data)</code></td></tr>
        <tr><td>re</td><td>/ˈriː/</td><td>正则表达式</td><td><code>re.search(r'\d+', s)</code></td></tr>
        <tr><td>random</td><td>/ˈrændəm/</td><td>随机数</td><td><code>random.randint(1,6)</code></td></tr>
        <tr><td>pickle</td><td>/ˈpɪkəl/</td><td>序列化</td><td><code>pickle.dump(obj)</code></td></tr>
        <tr><td>csv</td><td>/ˌsiː es ˈviː/</td><td>CSV文件处理</td><td><code>csv.reader(f)</code></td></tr>
        <tr><td>logging</td><td>/ˈlɒɡɪŋ/</td><td>日志记录</td><td><code>logging.basicConfig()</code></td></tr>
        <tr><td>unittest</td><td>/ˈjuːnɪttɛst/</td><td>单元测试</td><td><code>class Test(unittest.TestCase):</code></td></tr>
        <tr><td>pytest</td><td>/ˈpaɪtɛst/</td><td>测试框架</td><td><code>def test_func(): ...</code></td></tr>
        <tr><td>numpy</td><td>/ˈnʌmpaɪ/</td><td>数值计算</td><td><code>import numpy as np</code></td></tr>
        <tr><td>pandas</td><td>/ˈpændəz/</td><td>数据分析</td><td><code>pd.DataFrame(data)</code></td></tr>
        <tr><td>matplotlib</td><td>/ˌmætplɒtˈlɪb/</td><td>数据可视化</td><td><code>plt.plot(x,y)</code></td></tr>
        <tr><td>requests</td><td>/rɪˈkwɛsts/</td><td>HTTP请求</td><td><code>requests.get(url)</code></td></tr>
        <tr><td>flask</td><td>/flɑːsk/</td><td>Web框架</td><td><code>app = Flask(__name__)</code></td></tr>
        <tr><td>django</td><td>/ˈdʒæŋɡoʊ/</td><td>Web框架</td><td><code>python manage.py runserver</code></td></tr>
        <tr><td>asyncio</td><td>/əˈsɪŋkioʊ/</td><td>异步IO</td><td><code>async def main(): ...</code></td></tr>
        <tr><td>threading</td><td>/ˈθredɪŋ/</td><td>多线程</td><td><code>thread = threading.Thread()</code></td></tr>
        <tr><td>multiprocessing</td><td>/ˌmʌltiˈprəʊsesɪŋ/</td><td>多进程</td><td><code>Process(target=func)</code></td></tr>
        <tr><td>socket</td><td>/ˈsɒkɪt/</td><td>网络套接字</td><td><code>s = socket.socket()</code></td></tr>
        <tr><td>sqlite3</td><td>/ˌsiːkwɛlˈlaɪt/</td><td>嵌入式数据库</td><td><code>conn = sqlite3.connect()</code></td></tr>
        <tr><td>argparse</td><td>/ˈɑːɡpɑːz/</td><td>参数解析</td><td><code>parser.add_argument()</code></td></tr>
        <tr><td>typing</td><td>/ˈtaɪpɪŋ/</td><td>类型提示</td><td><code>def func() -> int:</code></td></tr>
        <tr><td>virtualenv</td><td>/ˈvɜːtʃuəlɛnv/</td><td>虚拟环境</td><td><code>python -m venv myenv</code></td></tr>
        <tr><td>pip</td><td>/pɪp/</td><td>包管理工具</td><td><code>pip install package</code></td></tr>
        <tr><td>wheel</td><td>/wiːl/</td><td>打包格式</td><td><code>python setup.py bdist_wheel</code></td></tr>
        <tr><td>setuptools</td><td>/ˈsetʌptuːlz/</td><td>打包工具</td><td><code>from setuptools import setup</code></td></tr>
        <tr><td>pdb</td><td>/ˌpiː diː ˈbiː/</td><td>调试器</td><td><code>pdb.set_trace()</code></td></tr>
    </table>

    <!-- 5. 面向对象编程 -->
    <h3>5. 面向对象编程（15词）</h3>
    <table>
        <tr><th>英文</th><th>音标</th><th>中文</th><th>代码示例</th></tr>
        <tr><td>class</td><td>/klɑːs/</td><td>类</td><td><code>class User:</code></td></tr>
        <tr><td>object</td><td>/ˈɒbdʒɪkt/</td><td>对象</td><td><code>obj = User()</code></td></tr>
        <tr><td>instance</td><td>/ˈɪnstəns/</td><td>实例</td><td><code>isinstance(obj, User)</code></td></tr>
        <tr><td>method</td><td>/ˈmeθəd/</td><td>方法</td><td><code>def get_name(self):</code></td></tr>
        <tr><td>attribute</td><td>/əˈtrɪbjuːt/</td><td>属性</td><td><code>self.name = name</code></td></tr>
        <tr><td>inheritance</td><td>/ɪnˈherɪtəns/</td><td>继承</td><td><code>class Admin(User):</code></td></tr>
        <tr><td>polymorphism</td><td>/ˌpɒliˈmɔːrfɪzəm/</td><td>多态</td><td><code>def speak(animal): ...</code></td></tr>
        <tr><td>encapsulation</td><td>/ɪnˌkæpsjuˈleɪʃən/</td><td>封装</td><td><code>self.__private_var</code></td></tr>
        <tr><td>abstraction</td><td>/æbˈstrækʃən/</td><td>抽象</td><td><code>from abc import ABC</code></td></tr>
        <tr><td>interface</td><td>/ˈɪntəfeɪs/</td><td>接口</td><td><code>class Runnable(ABC):</code></td></tr>
        <tr><td>constructor</td><td>/kənˈstrʌktər/</td><td>构造方法</td><td><code>def __init__(self):</code></td></tr>
        <tr><td>destructor</td><td>/dɪˈstrʌktər/</td><td>析构方法</td><td><code>def __del__(self):</code></td></tr>
        <tr><td>staticmethod</td><td>/ˈstætɪkˌmeθəd/</td><td>静态方法</td><td><code>@staticmethod</code></td></tr>
        <tr><td>classmethod</td><td>/ˈklɑːsmeθəd/</td><td>类方法</td><td><code>@classmethod</code></td></tr>
        <tr><td>property</td><td>/ˈprɒpəti/</td><td>属性装饰器</td><td><code>@property</code></td></tr>
    </table>
	        <footer class="footer">
            <p><a href=plan.html>大鱼AI共创营 © 2023</a> |每日学编程英语 | <a href=index.html>由人工智能提供技术支持</a></p>
    
        </footer>
</div>
<script>
// 有道发音函数
function playYoudaoAudio(word, isPhonetic = false) {
    // 清理音标符号
    const cleanWord = word.replace(/[\/\s]/g, '')
    const audioUrl = `http://dict.youdao.com/dictvoice?type=1&audio=${encodeURIComponent(cleanWord)}`
    
    const audio = new Audio(audioUrl)
    audio.play().catch(error => {
        console.error('播放失败:', error)
        alert('发音加载失败，请检查网络连接')
    })
}

// 自动为所有词汇添加发音按钮
document.addEventListener('DOMContentLoaded', () => {
    // 为单词添加发音按钮
    document.querySelectorAll('table td:nth-child(1)').forEach(td => {
        const word = td.textContent.split('\n')[0].trim()
        const btn = document.createElement('span')
        btn.className = 'pronounce-btn'
        btn.title = '点击发音'
        btn.onclick = () => playYoudaoAudio(word)
        td.appendChild(btn)
    })

    // 为音标添加发音按钮（需要单独处理）
    document.querySelectorAll('table td:nth-child(3)').forEach(td => {
        const phonetic = td.textContent.replace(/\//g, '')
        const btn = document.createElement('span')
        btn.className = 'pronounce-btn'
        btn.title = '发音标'
        btn.onclick = () => playYoudaoAudio(phonetic, true)
        td.insertBefore(btn, td.firstChild)
    })
})
</script>
</body>
</html>
